package cn.fw.community.client.model.req;

import cn.fw.community.client.model.enums.IdentityTypeEnum;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @author cn
 * @version 1.0
 * @description
 * @date 2022/9/23 15:08
 */
@Getter
@Setter
@ToString
public class UserInfoDo {
    /**
     * 自然人id
     */
    @JsonProperty("person_id")
    private Long personId;
    /**
     * 身份id
     */
    @JsonProperty("identity_id")
    private Long identityId;
    /**
     * 身份类型 NOT_SUPPORT,WORKER,WORKER_LEADER,PRACTITIONER,REGULATOR,OPERATOR
     */
    @JsonProperty("identity_type")
    private IdentityTypeEnum identityType;
//    /**
//     * 当前身份(cm_worker,cm_leader)
//     */
//    @JsonProperty("current_role_type")
//    private String currentRoleType;

    // 用户名
    @JsonProperty("name")
    private String name;
    // 所在城市
    @JsonProperty("city")
    private String city;
    // 所在省份
    @JsonProperty("province")
    private String province;
    // 当前班组id
    @JsonProperty("current_team_id")
    private String currentTeamId;
    // 当前班组名称
    @JsonProperty("current_team_name")
    private String currentTeamName;
    /**
     * 工种信息,每次变动时设置
     */
    @JsonProperty("profession_detail")
    private List<ProfessionDo> professions;
    /**
     * 岗位标签,每次变动时设置
     */
    @JsonProperty("position_name_detail")
    private List<PositionDo> positions;
//    // 技能标签
//    @JsonProperty("ability_label")
//    private String abilityLabel;
    /**
     * 注册(第一次登录)时的设备ID
     */
    @JsonProperty("device_id")
    private String deviceId;
    // 国家
    @JsonProperty("country")
    private String country;
    /**
     * 注册时间
     */
    @JsonProperty("register_time")
    private LocalDateTime registerTime;
    // 首次登录时间
    @JsonProperty("first_login_time")
    private LocalDateTime firstLoginTime;
    // 最后登录时间
    @JsonProperty("last_login_time")
    private LocalDateTime lastLoginTime;
    // 累计参与项目数
    @JsonProperty("total_item_num")
    private Integer totalItemNum;
    // 累计工人任务数
    @JsonProperty("total_task_num")
    private Integer totalTaskNum;
    // 连续登录天数
    @JsonProperty("continuous_login_day")
    private Integer continuousLoginDay;
    // 累计登录天数
    @JsonProperty("total_login_day")
    private Integer totalLoginDay;
    // 参与过的平台班组
    @JsonProperty("team_detail")
    private List<TeamDo> teams;
    /**
     * 项目id,每次变动时设置
     */
    @JsonProperty("project_id")
    private Integer projectId;
    /**
     * 项目部id,每次变动时设置
     */
    @JsonProperty("workspace_id")
    private Integer workspaceId;

}
